﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using RepositorioSATT;
using DominioSATT;

namespace ServiceSATT
{
    public class EventoService : IEventoService, IListadoEventoService
    {
        IEventoRepositorio repositorio;
        #region Miembros de IEventoService

        public int Agregar(IInterfazEventos ui)
        {
            IClubRepositorio clubRepo = new ClubRepositorio();
            int IdClub = clubRepo.ObtenerId(ui.Anfitrion);
            Club anfitrion = clubRepo.Buscar(IdClub);
            Evento nEvento = new Evento(anfitrion, ui.Nombre, ui.FechaInicio, ui.FechaFin, ui.Estado);
            repositorio = new EventoRepositorio();
            return repositorio.Agregar(nEvento);
        }

        public void Modificar(IInterfazEventos ui)
        {
            IClubRepositorio clubRepo = new ClubRepositorio();
            int IdClub = clubRepo.ObtenerId(ui.Anfitrion);
            Club anfitrion = clubRepo.Buscar(IdClub);
            Evento nEvento = new Evento(ui.IdEvento, anfitrion, ui.Nombre, ui.FechaInicio, ui.FechaFin, ui.Estado);
            repositorio = new EventoRepositorio();
            repositorio.Modificar(nEvento);
        }

        #endregion

        #region Miembros de IListadoEventoService

        public void Buscar(IInterfazEventos ui)
        {
            repositorio = new EventoRepositorio();
            int idEvento = repositorio.ObtenerId(ui.Nombre);
            Evento bEvento = repositorio.Obtener(idEvento);
            ui.IdEvento = bEvento.Id;
            ui.Anfitrion = bEvento.Anfitrion.Nombre;
            ui.Estado = bEvento.Estado;
            ui.FechaFin = bEvento.FechaFin;
            ui.FechaInicio = bEvento.FechaInicio;
        }

        public void Listar(IListadoEventos ui)
        {
            repositorio = new EventoRepositorio();
            ui.ListaEventos = repositorio.Listar();
        }

        #endregion

        #region IEventoService Members


        public void HistorialJugador(ServiceSATT.ui.IUiHistorialPersona ui)
        {
            IEventoRepositorio repo = new EventoRepositorio();
            repo.HistorialJugador(ui.Dni);
        }

        #endregion

        #region IEventoService Members


        public void HistorialArbitro(ServiceSATT.ui.IUiHistorialPersona ui)
        {
            IEventoRepositorio repo = new EventoRepositorio();
            repo.HistorialArbitro(ui.Dni);
        }

        #endregion
    }
}
